// token中间件
const expressJwt = require("express-jwt");
const { secretKey } = require("../constant/constant");

// express-jwt中间件帮我们自动做了token的验证以及错误处理，所以一般情况下我们按照格式书写就没问题，其中unless放的就是你想要不检验token的api。
const jwtAuth = expressJwt({
  secret: secretKey,
  credentialsRequired: true // 设置为false就不进行校验了，游客也可以访问
  // getToken: function fromHeaderOrQuerystring(req) {
  //   if (
  //     req.headers.authorization &&
  //     req.headers.authorization.split(" ")[0] === "Bearer"
  //   ) {
  //     console.log("1 --", req.headers.authorization.split(" ")[1]);
  //     return req.headers.authorization.split(" ")[1];
  //   } else if (req.query && req.query.token) {
  //     console.log("2 --", req.query.token);
  //     return req.query.token;
  //   }
  //   return null;
  // }
}).unless({
  path: ["/api/user/login", "/api/user/register"]
});

module.exports = jwtAuth;
